草庐IT

Java NIO - Files.isSameFile 与 Path.equals 有何不同

全部标签

java - 当 equals() 使用相似性度量时覆盖 hashCode() 以与 equals() 一致

假设我有一个带有字段颜色和型号的汽车类。我需要将汽车存储在一个集合中,其中我不会重复(没有2辆相同的汽车)。在下面的示例中,我使用的是HashMap。根据Java文档,如果我们有2个Car对象car1和car2满足car1.equals(car2)==true,那么它还必须包含car1.hashCode()==car2.hashCode()。所以在这个例子中,如果我想只通过颜色比较汽车,那么我将只使用equals()和hashCode()中的颜色字段,正如我所做的那样在我的代码中,它工作得很好。publicclassCar{Stringcolor;Stringmodel;@Overri

: Supertypes and Subtypes seem to be equal?的Java实例如何准确测试类型?

我需要测试一个实例是否完全属于给定类型。但是,如果针对父类(superclass)型测试子类型(情况3),instanceof似乎也会返回true。我以前从来不知道这一点,我很惊讶。我在这里做错了什么吗?如何准确测试给定类型?//..classDataSourceEmailAttachmentextendsEmailAttachment//...EmailAttachmentemailAttachment=newEmailAttachment();DataSourceEmailAttachmentemailAttachmentDS=newDataSourceEmailAttachmen

java - Equals 和 hashCode 与 EqualsVerifier 的契约(Contract)

我对Java中使用EqualsVerifier的equals和hashCode契约有一些疑问图书馆。假设我们有这样的东西publicabstractclassPerson{protectedStringname;@Overridepublicbooleanequals(Objectobj){//onlynameistakenintoaccount}@OverridepublicinthashCode(){//onlynameistakenintoaccount}}以及以下扩展类:publicfinalclassWorkerextendsPerson{privateStringworkD

java - 我应该在环境变量 PATH 中同时添加 JAVA_HOME 和 JRE_HOME 吗?

我在设置Tomcat和Java环境路径时遇到了这个错误:NeithertheJAVA_HOMEnortheJRE_HOMEenvironmentalvariablesisdefined.Atleastoneofthe2environmentalvariablesisneededtorunthisprogram.在用户变量中:我创建了JAVA_HOME变量并将C:\ProgramFiles\Java\jdk1.8.0_25添加到它的路径.然后编辑系统变量PATH,将C:\ProgramFiles\Java\jdk1.8.0_25;添加到它的路径。我还在用户变量中创建了JRE_HOME并将

java - 谁在把元素放入HashMap时调用了类的equals方法?

我是Java的新手(非常新)。我试图了解HashMap和类的equals方法以及它如何覆盖重复项。请看下面的代码:publicclassStudent{IntegerStudentId;StringName;StringCity;publicStudent(IntegerstudentId,Stringname,Stringcity){super();StudentId=studentId;Name=name;City=city;}publicIntegergetStudentId(){returnStudentId;}publicStringgetName(){returnName;

java - 错误做法 - 类定义 compareTo(...) 并使用 Object.equals()

想知道需要为列出的方法做什么publicfinalintcompareTo(finalFieldDTOo){returno.available.compareTo(this.available);它在第2行抛出异常说明错误做法-类定义compareTo(...)并使用Object.equals()16天字段定义compareTo(FieldDTO)并使用Object.equals()不确定我该如何处理。提前致谢。 最佳答案 如果你定义了compareTo,你至少应该定义equalsbooleanequals(it){returnco

java util logging.properties : How to log to two different files

我在tomcat的WEB-INF/classes目录中放置了一个logging.properties我想登录到两个不同的文件。例如:org.pkg1转到一个文件,org.pkg2转到另一个文件。我可以配置一个文件,但不能配置两个。这可能吗? 最佳答案 我终于明白了。在tomcat中,他们扩展了javautil日志记录(“JULI”)以启用此功能。这是我放在WEB-INF目录中的一个logging.properties文件,它最终完成了我想要的……:handlers=1console.java.util.logging.Console

c# - Java 的静态概念与 C# 的有何不同?

我正在阅读JoshBloch的书EffectiveJava,他建议在构建具有大量成员的对象时使用构建器设计模式。据我所知,这不是Vanilla设计模式,而是看起来像他的变体。我更喜欢它的外观,并试图在我正在编写的C#Web应用程序中使用它。这是用Java编写的代码,可以完美运行publicclassProperty{privateStringtitle;privateStringarea;privateintsleeps=0;publicstaticvoidmain(String[]args){PropertynewProperty=newProperty.Builder("TestP

具有覆盖的 hashCode() 和 equals() 的 Java HashMap 不返回任何数据

我最近一直在使用Java的HashMap,并且遇到了一些有趣的行为。我目前正在使用它来存储具有多个字段的键/值对象。为此,我重写了hashCode()和equals(),如下所示:publicfinalclassTransitionState{privateStringmStackSymbol;privateStringmTransitionSymbol;privateintmState;privatestaticfinalintHASH_SEED=7;//ShouldbeprimeprivatestaticfinalintHASH_OFFSET=31;//Constructorand

java - 使用 equals 和 compareTo 进行字符串比较 - 哪个更快?

我需要比较2个字符串。我有以下我能想到的方法:equalsIgnoreCase-听说这是最快的,但我不能使用它,因为我的字符串区分大小写匹配-可能是最慢的一个等于比较所以在上面的选项中,我只剩下equals和compareTo。哪个更快?注意:输入的字符串数量庞大[每秒约5000个]。 最佳答案 请注意compareTo之间的一个非常重要的区别和equals:"myString".compareTo(null);//Throwsjava.lang.NullPointerException"myString".equals(null)